home *** CD-ROM | disk | FTP | other *** search
/ 9-Digit Zip Code Directory / 9-Digit Zip Code Directory (American Business Information) (ABIZIP-12).ISO / z4src.zip / SQLEXT.H < prev    next >
C/C++ Source or Header  |  1993-11-11  |  27KB  |  818 lines

  1. /*
  2. ** SQLEXT.H - This is the include for applications using
  3. **             the Microsoft SQL Extensions
  4. **
  5. ** (C) Copyright 1990, 1991, 1992, 1993 By Microsoft Corp.
  6. */
  7.  
  8. #ifndef __SQLEXT
  9. #define __SQLEXT
  10.  
  11. #ifdef __cplusplus
  12. extern "C" {                         /* Assume C declarations for C++ */
  13. #endif    /* __cplusplus */
  14.  
  15. #ifndef __SQL
  16. #include "sql.h"
  17. #endif
  18.  
  19. /* Defines used by both Level 1 and Level 2 functions */
  20.  
  21. /* Additional return codes */
  22. #define SQL_STILL_EXECUTING 2
  23.  
  24. /* SQL extended datatypes */
  25. #define SQL_DATE            9
  26. #define SQL_TIME           10
  27. #define SQL_TIMESTAMP      11
  28. #define SQL_LONGVARCHAR    -1
  29. #define SQL_BINARY         -2
  30. #define SQL_VARBINARY      -3
  31. #define SQL_LONGVARBINARY  -4
  32. #define SQL_BIGINT         -5
  33. #define SQL_TINYINT        -6
  34. #define SQL_BIT            -7
  35.  
  36. /* C datatype to SQL datatype mapping */
  37. #define SQL_C_DATE         SQL_DATE
  38. #define SQL_C_TIME         SQL_TIME
  39. #define SQL_C_TIMESTAMP    SQL_TIMESTAMP
  40. #define SQL_C_BINARY       SQL_BINARY
  41. #define SQL_C_BIT          SQL_BIT
  42. #define SQL_C_TINYINT      SQL_TINYINT
  43.  
  44. #ifndef RC_INVOKED
  45. /* SQL portable types for C */
  46. /* transfer types for DATE, TIME, TIMESTAMP */
  47. typedef struct tagDATE_STRUCT
  48.   {
  49.   SWORD year;
  50.   UWORD month;
  51.   UWORD day;
  52.   } DATE_STRUCT;
  53.  
  54. typedef struct tagTIME_STRUCT
  55.   {
  56.   UWORD hour;
  57.   UWORD minute;
  58.   UWORD second;
  59.   } TIME_STRUCT;
  60.  
  61. typedef struct tagTIMESTAMP_STRUCT
  62.   {
  63.   SWORD year;
  64.   UWORD month;
  65.   UWORD day;
  66.   UWORD hour;
  67.   UWORD minute;
  68.   UWORD second;
  69.   UDWORD fraction;
  70.   } TIMESTAMP_STRUCT;
  71. #endif /* RC_INVOKED */
  72.  
  73. /* from SQL.h -- extended data types change this */
  74. #undef  SQL_TYPE_MIN  
  75. #define SQL_TYPE_MIN      -7
  76. #define SQL_ALL_TYPES      0
  77.  
  78.  
  79. /* Level 1 Functions                             */
  80.  
  81. /* Access modes                 */
  82. #define SQL_MODE_READ_WRITE     0
  83. #define SQL_MODE_READ_ONLY      1
  84.  
  85. /* Options for SQLDriverConnect */
  86. #define SQL_DRIVER_NOPROMPT           0
  87. #define SQL_DRIVER_COMPLETE           1
  88. #define SQL_DRIVER_PROMPT             2
  89. #define SQL_DRIVER_COMPLETE_REQUIRED  3
  90.  
  91. /* Special return values for SQLGetData */
  92. #define SQL_NO_TOTAL           -4
  93.  
  94. /* Defines for SQLGetFunctions */
  95. #define SQL_API_SQLALLOCCONNECT      1    /* Core Functions           */
  96. #define SQL_API_SQLALLOCENV          2
  97. #define SQL_API_SQLALLOCSTMT         3
  98. #define SQL_API_SQLBINDCOL           4
  99. #define SQL_API_SQLCANCEL            5
  100. #define SQL_API_SQLCOLATTRIBUTES     6
  101. #define SQL_API_SQLCONNECT           7
  102. #define SQL_API_SQLDESCRIBECOL       8
  103. #define SQL_API_SQLDISCONNECT        9
  104. #define SQL_API_SQLERROR            10
  105. #define SQL_API_SQLEXECDIRECT       11
  106. #define SQL_API_SQLEXECUTE          12
  107. #define SQL_API_SQLFETCH            13
  108. #define SQL_API_SQLFREECONNECT      14
  109. #define SQL_API_SQLFREEENV          15
  110. #define SQL_API_SQLFREESTMT         16
  111. #define SQL_API_SQLGETCURSORNAME    17
  112. #define SQL_API_SQLNUMRESULTCOLS    18
  113. #define SQL_API_SQLPREPARE          19
  114. #define SQL_API_SQLROWCOUNT         20
  115. #define SQL_API_SQLSETCURSORNAME    21
  116. #define SQL_API_SQLSETPARAM         22
  117. #define SQL_API_SQLTRANSACT         23
  118.  
  119. #define SQL_NUM_FUNCTIONS           23
  120.  
  121. #define SQL_EXT_API_START           40
  122.  
  123. #define SQL_API_SQLCOLUMNS          40    /* Level 1 Functions        */
  124. #define SQL_API_SQLDRIVERCONNECT    41
  125. #define SQL_API_SQLGETCONNECTOPTION 42
  126. #define SQL_API_SQLGETDATA          43
  127. #define SQL_API_SQLGETFUNCTIONS     44
  128. #define SQL_API_SQLGETINFO          45
  129. #define SQL_API_SQLGETSTMTOPTION    46
  130. #define SQL_API_SQLGETTYPEINFO      47
  131. #define SQL_API_SQLPARAMDATA        48
  132. #define SQL_API_SQLPUTDATA          49
  133. #define SQL_API_SQLSETCONNECTOPTION 50
  134. #define SQL_API_SQLSETSTMTOPTION    51
  135. #define SQL_API_SQLSPECIALCOLUMNS   52
  136. #define SQL_API_SQLSTATISTICS       53
  137. #define SQL_API_SQLTABLES           54
  138.  
  139. #define SQL_API_SQLBROWSECONNECT    55    /* Level 2 Functions        */
  140. #define SQL_API_SQLCOLUMNPRIVILEGES 56
  141. #define SQL_API_SQLDATASOURCES      57
  142. #define SQL_API_SQLDESCRIBEPARAM    58
  143. #define SQL_API_SQLEXTENDEDFETCH    59
  144. #define SQL_API_SQLFOREIGNKEYS      60
  145. #define SQL_API_SQLMORERESULTS      61
  146. #define SQL_API_SQLNATIVESQL        62
  147. #define SQL_API_SQLNUMPARAMS        63
  148. #define SQL_API_SQLPARAMOPTIONS     64
  149. #define SQL_API_SQLPRIMARYKEYS      65
  150. #define SQL_API_SQLPROCEDURECOLUMNS 66
  151. #define SQL_API_SQLPROCEDURES       67
  152. #define SQL_API_SQLSETPOS           68
  153. #define SQL_API_SQLSETSCROLLOPTIONS 69
  154. #define SQL_API_SQLTABLEPRIVILEGES  70
  155.  
  156. #define SQL_EXT_API_LAST            70
  157.  
  158. #define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
  159.  
  160. /* Defines for SQLGetInfo */
  161. #define SQL_INFO_FIRST                       0
  162. #define SQL_ACTIVE_CONNECTIONS               0
  163. #define SQL_ACTIVE_STATEMENTS                1
  164. #define SQL_DATA_SOURCE_NAME                 2
  165. #define SQL_DRIVER_HDBC                      3
  166. #define SQL_DRIVER_HENV                      4
  167. #define SQL_DRIVER_HSTMT                     5
  168. #define SQL_DRIVER_NAME                      6
  169. #define SQL_DRIVER_VER                       7
  170. #define SQL_FETCH_DIRECTION                  8
  171. #define SQL_ODBC_API_CONFORMANCE             9
  172. #define SQL_ODBC_VER                        10
  173. #define SQL_ROW_UPDATES                     11
  174. #define SQL_ODBC_SAG_CLI_CONFORMANCE        12
  175. #define SQL_SERVER_NAME                     13
  176. #define SQL_SEARCH_PATTERN_ESCAPE           14
  177. #define SQL_ODBC_SQL_CONFORMANCE            15
  178.  
  179. #define SQL_DATABASE_NAME                   16
  180. #define SQL_DBMS_NAME                       17
  181. #define SQL_DBMS_VER                        18
  182.  
  183. #define SQL_ACCESSIBLE_TABLES               19
  184. #define SQL_ACCESSIBLE_PROCEDURES           20
  185. #define SQL_PROCEDURES                      21
  186. #define SQL_CONCAT_NULL_BEHAVIOR            22
  187. #define SQL_CURSOR_COMMIT_BEHAVIOR          23
  188. #define SQL_CURSOR_ROLLBACK_BEHAVIOR        24
  189. #define SQL_DATA_SOURCE_READ_ONLY           25
  190. #define SQL_DEFAULT_TXN_ISOLATION           26
  191. #define SQL_EXPRESSIONS_IN_ORDERBY          27
  192. #define SQL_IDENTIFIER_CASE                 28
  193. #define SQL_IDENTIFIER_QUOTE_CHAR           29
  194. #define SQL_MAX_COLUMN_NAME_LEN             30
  195. #define SQL_MAX_CURSOR_NAME_LEN             31
  196. #define SQL_MAX_OWNER_NAME_LEN              32
  197. #define SQL_MAX_PROCEDURE_NAME_LEN          33
  198. #define SQL_MAX_QUALIFIER_NAME_LEN          34
  199. #define SQL_MAX_TABLE_NAME_LEN              35
  200. #define SQL_MULT_RESULT_SETS                36
  201. #define SQL_MULTIPLE_ACTIVE_TXN             37
  202. #define SQL_OUTER_JOINS                     38
  203. #define SQL_OWNER_TERM                      39
  204. #define SQL_PROCEDURE_TERM                  40
  205. #define SQL_QUALIFIER_NAME_SEPARATOR        41
  206. #define SQL_QUALIFIER_TERM                  42
  207. #define SQL_SCROLL_CONCURRENCY              43
  208. #define SQL_SCROLL_OPTIONS                  44
  209. #define SQL_TABLE_TERM                      45
  210. #define SQL_TXN_CAPABLE                     46
  211. #define SQL_USER_NAME                       47
  212.  
  213. #define SQL_CONVERT_FUNCTIONS               48
  214. #define SQL_NUMERIC_FUNCTIONS               49
  215. #define SQL_STRING_FUNCTIONS                50
  216. #define SQL_SYSTEM_FUNCTIONS                51
  217. #define SQL_TIMEDATE_FUNCTIONS              52
  218.  
  219. #define SQL_CONVERT_BIGINT                  53
  220. #define SQL_CONVERT_BINARY                  54
  221. #define SQL_CONVERT_BIT                     55
  222. #define SQL_CONVERT_CHAR                    56
  223. #define SQL_CONVERT_DATE                    57
  224. #define SQL_CONVERT_DECIMAL                 58
  225. #define SQL_CONVERT_DOUBLE                  59
  226. #define SQL_CONVERT_FLOAT                   60
  227. #define SQL_CONVERT_INTEGER                 61
  228. #define SQL_CONVERT_LONGVARCHAR             62
  229. #define SQL_CONVERT_NUMERIC                 63
  230. #define SQL_CONVERT_REAL                    64
  231. #define SQL_CONVERT_SMALLINT                65
  232. #define SQL_CONVERT_TIME                    66
  233. #define SQL_CONVERT_TIMESTAMP               67
  234. #define SQL_CONVERT_TINYINT                 68
  235. #define SQL_CONVERT_VARBINARY               69
  236. #define SQL_CONVERT_VARCHAR                 70
  237. #define SQL_CONVERT_LONGVARBINARY           71
  238.  
  239. #define SQL_TXN_ISOLATION_OPTION            72
  240. #define SQL_ODBC_SQL_OPT_IEF                73
  241.  
  242. /*** ODBC SDK 1.0 Additions ***/
  243. #define SQL_CORRELATION_NAME                74
  244. #define SQL_NON_NULLABLE_COLUMNS            75
  245.  
  246. /*** ODBC SDK 2.0 Additions ***/
  247. #define SQL_DRIVER_HLIB                     76
  248. #define SQL_DRIVER_ODBC_VER                 77
  249. #define SQL_LOCK_TYPES                        78
  250. #define SQL_POS_OPERATIONS                    79
  251. #define SQL_POSITIONED_STATEMENTS            80
  252. #define SQL_GETDATA_EXTENSIONS                81
  253. #define SQL_BOOKMARK_PERSISTENCE            82
  254. #define SQL_STATIC_SENSITIVITY                83
  255. #define SQL_FILE_USAGE                        84
  256. #define SQL_NULL_COLLATION                    85
  257. #define SQL_ALTER_TABLE                     86
  258. #define SQL_COLUMN_ALIAS                    87
  259. #define SQL_GROUP_BY                        88
  260. #define SQL_KEYWORDS                        89
  261. #define SQL_ORDER_BY_COLUMNS_IN_SELECT        90
  262. #define SQL_OWNER_USAGE                     91
  263. #define SQL_QUALIFIER_USAGE                 92
  264. #define SQL_QUOTED_IDENTIFIER_CASE            93
  265. #define SQL_SPECIAL_CHARACTERS                94
  266. #define SQL_SUBQUERIES                        95
  267. #define SQL_UNION                            96
  268. #define SQL_MAX_COLUMNS_IN_GROUP_BY         97
  269. #define SQL_MAX_COLUMNS_IN_INDEX            98
  270. #define SQL_MAX_COLUMNS_IN_ORDER_BY         99
  271. #define SQL_MAX_COLUMNS_IN_SELECT           100
  272. #define SQL_MAX_COLUMNS_IN_TABLE           101
  273. #define SQL_MAX_INDEX_SIZE                   102
  274. #define SQL_MAX_ROW_SIZE_INCLUDES_LONG       103
  275. #define SQL_MAX_ROW_SIZE                   104
  276. #define SQL_MAX_STATEMENT_LEN               105
  277. #define SQL_MAX_TABLES_IN_SELECT           106
  278. #define SQL_MAX_USER_NAME_LEN               107
  279. #define SQL_MAX_CHAR_LITERAL_LEN            108
  280. #define SQL_TIMEDATE_ADD_INTERVALS           109
  281. #define SQL_TIMEDATE_DIFF_INTERVALS        110
  282.  
  283. #define SQL_CONVERT_C_BINARY               111
  284. #define SQL_CONVERT_C_BIT                   112
  285. #define SQL_CONVERT_C_CHAR                   113
  286. #define SQL_CONVERT_C_DATE                   114
  287. #define SQL_CONVERT_C_DOUBLE               115
  288. #define SQL_CONVERT_C_FLOAT                116
  289. #define SQL_CONVERT_C_SLONG                117
  290. #define SQL_CONVERT_C_SSHORT               118
  291. #define SQL_CONVERT_C_STINYINT               119
  292. #define SQL_CONVERT_C_TIME                   120
  293. #define SQL_CONVERT_C_TIMESTAMP            121
  294. #define SQL_CONVERT_C_ULONG                122
  295. #define SQL_CONVERT_C_USHORT               123
  296. #define SQL_CONVERT_C_UTINYINT               124
  297.  
  298. #define SQL_CONVERT_SQL_BIGINT               125
  299. #define SQL_CONVERT_SQL_BINARY               126
  300. #define SQL_CONVERT_SQL_BIT                127
  301. #define SQL_CONVERT_SQL_CHAR               128
  302. #define SQL_CONVERT_SQL_DATE               129
  303. #define SQL_CONVERT_SQL_DECIMAL            130
  304. #define SQL_CONVERT_SQL_DOUBLE               131
  305. #define SQL_CONVERT_SQL_FLOAT               132
  306. #define SQL_CONVERT_SQL_INTEGER            133
  307. #define SQL_CONVERT_SQL_LONGVARBINARY       134
  308. #define SQL_CONVERT_SQL_LONGVARCHAR        135
  309. #define SQL_CONVERT_SQL_NUMERIC            136
  310. #define SQL_CONVERT_SQL_REAL               137
  311. #define SQL_CONVERT_SQL_SMALLINT           138
  312. #define SQL_CONVERT_SQL_TIME               139
  313. #define SQL_CONVERT_SQL_TIMESTAMP           140
  314. #define SQL_CONVERT_SQL_TINYINT            141
  315. #define SQL_CONVERT_SQL_VARBINARY           142
  316. #define SQL_CONVERT_SQL_VARCHAR            143
  317.  
  318. #define SQL_INFO_LAST                       143
  319. #define SQL_INFO_DRIVER_START             1000
  320.  
  321.  
  322. /* "SQL_CONVERT_" return value bitmasks */
  323.  
  324. #define SQL_CVT_CHAR                        0x00000001L
  325. #define SQL_CVT_NUMERIC                     0x00000002L
  326. #define SQL_CVT_DECIMAL                     0x00000004L
  327. #define SQL_CVT_INTEGER                     0x00000008L
  328. #define SQL_CVT_SMALLINT                    0x00000010L
  329. #define SQL_CVT_FLOAT                       0x00000020L
  330. #define SQL_CVT_REAL                        0x00000040L
  331. #define SQL_CVT_DOUBLE                      0x00000080L
  332. #define SQL_CVT_VARCHAR                     0x00000100L
  333. #define SQL_CVT_LONGVARCHAR                 0x00000200L
  334. #define SQL_CVT_BINARY                      0x00000400L
  335. #define SQL_CVT_VARBINARY                   0x00000800L
  336. #define SQL_CVT_BIT                         0x00001000L
  337. #define SQL_CVT_TINYINT                     0x00002000L
  338. #define SQL_CVT_BIGINT                      0x00004000L
  339. #define SQL_CVT_DATE                        0x00008000L
  340. #define SQL_CVT_TIME                        0x00010000L
  341. #define SQL_CVT_TIMESTAMP                   0x00020000L
  342. #define SQL_CVT_LONGVARBINARY               0x00040000L
  343.  
  344. /* Conversion functions */
  345. #define SQL_FN_CVT_CONVERT                  0x00000001L
  346.  
  347. /* String functions */
  348.  
  349. #define SQL_FN_STR_CONCAT                   0x00000001L
  350. #define SQL_FN_STR_INSERT                   0x00000002L
  351. #define SQL_FN_STR_LEFT                     0x00000004L
  352. #define SQL_FN_STR_LTRIM                    0x00000008L
  353. #define SQL_FN_STR_LENGTH                   0x00000010L
  354. #define SQL_FN_STR_LOCATE                   0x00000020L
  355. #define SQL_FN_STR_LCASE                    0x00000040L
  356. #define SQL_FN_STR_REPEAT                   0x00000080L
  357. #define SQL_FN_STR_REPLACE                  0x00000100L
  358. #define SQL_FN_STR_RIGHT                    0x00000200L
  359. #define SQL_FN_STR_RTRIM                    0x00000400L
  360. #define SQL_FN_STR_SUBSTRING                0x00000800L
  361. #define SQL_FN_STR_UCASE                    0x00001000L
  362. #define SQL_FN_STR_ASCII                    0x00002000L
  363. #define SQL_FN_STR_CHAR                     0x00004000L
  364.  
  365. /* Numeric functions */
  366.  
  367. #define SQL_FN_NUM_ABS                      0x00000001L
  368. #define SQL_FN_NUM_ACOS                     0x00000002L
  369. #define SQL_FN_NUM_ASIN                     0x00000004L
  370. #define SQL_FN_NUM_ATAN                     0x00000008L
  371. #define SQL_FN_NUM_ATAN2                    0x00000010L
  372. #define SQL_FN_NUM_CEILING                  0x00000020L
  373. #define SQL_FN_NUM_COS                      0x00000040L
  374. #define SQL_FN_NUM_COT                      0x00000080L
  375. #define SQL_FN_NUM_EXP                      0x00000100L
  376. #define SQL_FN_NUM_FLOOR                    0x00000200L
  377. #define SQL_FN_NUM_LOG                      0x00000400L
  378. #define SQL_FN_NUM_MOD                      0x00000800L
  379. #define SQL_FN_NUM_SIGN                     0x00001000L
  380. #define SQL_FN_NUM_SIN                      0x00002000L
  381. #define SQL_FN_NUM_SQRT                     0x00004000L
  382. #define SQL_FN_NUM_TAN                      0x00008000L
  383. #define SQL_FN_NUM_PI                       0x00010000L
  384. #define SQL_FN_NUM_RAND                     0x00020000L
  385.  
  386. /* Time/date functions */
  387.  
  388. #define SQL_FN_TD_NOW                       0x00000001L
  389. #define SQL_FN_TD_CURDATE                   0x00000002L
  390. #define SQL_FN_TD_DAYOFMONTH                0x00000004L
  391. #define SQL_FN_TD_DAYOFWEEK                 0x00000008L
  392. #define SQL_FN_TD_DAYOFYEAR                 0x00000010L
  393. #define SQL_FN_TD_MONTH                     0x00000020L
  394. #define SQL_FN_TD_QUARTER                   0x00000040L
  395. #define SQL_FN_TD_WEEK                      0x00000080L
  396. #define SQL_FN_TD_YEAR                      0x00000100L
  397. #define SQL_FN_TD_CURTIME                   0x00000200L
  398. #define SQL_FN_TD_HOUR                      0x00000400L
  399. #define SQL_FN_TD_MINUTE                    0x00000800L
  400. #define SQL_FN_TD_SECOND                    0x00001000L
  401.  
  402. /* System functions */
  403.  
  404. #define SQL_FN_SYS_USERNAME                 0x00000001L
  405. #define SQL_FN_SYS_DBNAME                   0x00000002L
  406. #define SQL_FN_SYS_IFNULL                   0x00000004L
  407.  
  408. /* ODBC API Conformance values */
  409.  
  410. #define SQL_OAC_NONE                        0x0000
  411. #define SQL_OAC_LEVEL1                        0x0001
  412. #define SQL_OAC_LEVEL2                        0x0002
  413.  
  414. /* ODBC SQL Conformance values */
  415.  
  416. #define SQL_OSC_MINIMUM                     0x0000
  417. #define SQL_OSC_CORE                        0x0001
  418. #define SQL_OSC_EXTENDED                    0x0002
  419.  
  420. /* Cursor Commit Behavior values */
  421.  
  422. #define SQL_CC_DELETE                        0x0000
  423. #define SQL_CC_CLOSE                        0x0001
  424. #define SQL_CC_PRESERVE                        0x0002
  425.  
  426. /* Cursor Rollback Behavior values */
  427.  
  428. #define SQL_CR_DELETE                       0x0000
  429. #define SQL_CR_CLOSE                       0x0001
  430. #define SQL_CR_PRESERVE                       0x0002
  431.  
  432. /* Scroll option masks */
  433.  
  434. #define SQL_SO_FORWARD_ONLY                 0x00000001L
  435. #define SQL_SO_KEYSET_DRIVEN                0x00000002L
  436. #define SQL_SO_DYNAMIC                      0x00000004L
  437. #define SQL_SO_MIXED                        0x00000008L
  438. #define SQL_SO_STATIC                       0x00000010L
  439.  
  440. /* Scroll concurrency option masks */
  441.  
  442. #define SQL_SCCO_READ_ONLY                  0x00000001L
  443. #define SQL_SCCO_LOCK                       0x00000002L
  444. #define SQL_SCCO_OPT_TIMESTAMP              0x00000004L
  445. #define SQL_SCCO_OPT_VALUES                 0x00000008L
  446.  
  447. /* Fetch direction option masks */
  448.  
  449. #define SQL_FD_FETCH_NEXT                   0x00000001L
  450. #define SQL_FD_FETCH_FIRST                  0x00000002L
  451. #define SQL_FD_FETCH_LAST                   0x00000004L
  452. #define SQL_FD_FETCH_PREV                   0x00000008L
  453. #define SQL_FD_FETCH_ABSOLUTE               0x00000010L
  454. #define SQL_FD_FETCH_RELATIVE               0x00000020L
  455. #define SQL_FD_FETCH_RESUME                 0x00000040L
  456.  
  457. /* Transaction isolation option masks */
  458.  
  459. #define SQL_TXN_READ_UNCOMMITTED            0x00000001L
  460. #define SQL_TXN_READ_COMMITTED              0x00000002L
  461. #define SQL_TXN_REPEATABLE_READ             0x00000004L
  462. #define SQL_TXN_SERIALIZABLE                0x00000008L
  463. #define SQL_TXN_VERSIONING                  0x00000010L
  464.  
  465. /* Positioned statements option masks */
  466.  
  467. #define SQL_PS_POSITIONED_DELETE    0x00000001L
  468. #define SQL_PS_POSITIONED_UPDATE    0x00000002L
  469. #define SQL_PS_SELECT_FOR_UPDATE    0x00000004L
  470.  
  471. /* Lock Types option masks */
  472.  
  473. #define SQL_LCK_NO_CHANGE            0x00000001L
  474. #define SQL_LCK_EXCLUSIVE            0x00000002L
  475. #define SQL_LCK_UNLOCK                0x00000004L
  476.  
  477. /* options for SQLGetStmtOption/SQLSetStmtOption */
  478. #define SQL_QUERY_TIMEOUT       0
  479. #define SQL_MAX_ROWS            1
  480. #define SQL_NOSCAN              2
  481. #define SQL_MAX_LENGTH          3
  482. #define SQL_ASYNC_ENABLE        4
  483. #define SQL_BIND_TYPE           5
  484.  
  485. #define SQL_BIND_BY_COLUMN      0    /* Suboption for SQL_BIND_TYPE */
  486.  
  487. /* options for SQLSetConnectOption/SQLGetConnectOption */
  488. #define SQL_ACCESS_MODE             101
  489. #define SQL_AUTOCOMMIT                102
  490. #define SQL_LOGIN_TIMEOUT            103
  491. #define SQL_OPT_TRACE                104
  492. #define SQL_OPT_TRACEFILE            105
  493. #define SQL_TRANSLATE_DLL            106
  494. #define SQL_TRANSLATE_OPTION        107
  495. #define SQL_TXN_ISOLATION            108
  496. #define SQL_CURRENT_QUALIFIER        109
  497. #define SQL_ODBC_CURSORS            110
  498. #define SQL_CONNECT_OPT_DRVR_START    1000
  499.  
  500. #define    CONN_OPT_MIN                SQL_ACCESS_MODE
  501. #define CONN_OPT_MAX                SQL_ODBC_CURSORS
  502.  
  503. /* SQL_ODBC_CURSORS options */
  504. #define SQL_CUR_USE_IF_NEEDED        0UL
  505. #define SQL_CUR_USE_ODBC            1UL
  506. #define SQL_CUR_USE_DRIVER            2UL
  507. #define SQL_CUR_DEFAULT             SQL_CUR_USE_DRIVER
  508.  
  509. /*  Column types and scopes in SQLSpecialColumns.  */
  510. #define SQL_BEST_ROWID 1
  511. #define SQL_ROWVER     2
  512.  
  513. #define SQL_SCOPE_CURROW       0
  514. #define SQL_SCOPE_TRANSACTION  1
  515. #define SQL_SCOPE_SESSION      2
  516.  
  517. #ifndef RC_INVOKED
  518. /* Level 1 Prototypes */
  519. RETCODE SQL_API SQLColumns(
  520.     HSTMT      hstmt,
  521.     UCHAR  FAR *szTableQualifier,
  522.     SWORD      cbTableQualifier,
  523.     UCHAR  FAR *szTableOwner,
  524.     SWORD      cbTableOwner,
  525.     UCHAR  FAR *szTableName,
  526.     SWORD      cbTableName,
  527.     UCHAR  FAR *szColumnName,
  528.     SWORD      cbColumnName);
  529.  
  530. RETCODE SQL_API SQLDriverConnect(
  531.     HDBC       hdbc,
  532.     HWND       hwnd,
  533.     UCHAR  FAR *szConnStrIn,
  534.     SWORD      cbConnStrIn,
  535.     UCHAR  FAR *szConnStrOut,
  536.     SWORD      cbConnStrOutMax,
  537.     SWORD  FAR *pcbConnStrOut,
  538.     UWORD      fDriverCompletion);
  539.  
  540. RETCODE SQL_API SQLGetConnectOption(
  541.     HDBC       hdbc,
  542.     UWORD      fOption,
  543.     PTR        pvParam);
  544.  
  545. RETCODE SQL_API SQLGetData(
  546.     HSTMT      hstmt,
  547.     UWORD      icol,
  548.     SWORD      fCType,
  549.     PTR        rgbValue,
  550.     SDWORD     cbValueMax,
  551.     SDWORD FAR *pcbValue);
  552.  
  553. RETCODE SQL_API SQLGetFunctions(
  554.     HDBC       hdbc,
  555.     UWORD      fFunction,
  556.     UWORD  FAR *pfExists);
  557.  
  558. RETCODE SQL_API SQLGetInfo(
  559.     HDBC       hdbc,
  560.     UWORD      fInfoType,
  561.     PTR        rgbInfoValue,
  562.     SWORD      cbInfoValueMax,
  563.     SWORD  FAR *pcbInfoValue);
  564.  
  565. RETCODE SQL_API SQLGetStmtOption(
  566.     HSTMT      hstmt,
  567.     UWORD      fOption,
  568.     PTR        pvParam);
  569.  
  570. RETCODE SQL_API SQLGetTypeInfo(
  571.     HSTMT      hstmt,
  572.     SWORD      fSqlType);
  573.  
  574. RETCODE SQL_API SQLParamData(
  575.     HSTMT      hstmt,
  576.     PTR    FAR *prgbValue);
  577.  
  578. RETCODE SQL_API SQLPutData(
  579.     HSTMT      hstmt,
  580.     PTR        rgbValue,
  581.     SDWORD     cbValue);
  582.  
  583. RETCODE SQL_API SQLSetConnectOption(
  584.     HDBC       hdbc,
  585.     UWORD      fOption,
  586.     UDWORD     vParam);
  587.  
  588. RETCODE SQL_API SQLSetStmtOption(
  589.     HSTMT      hstmt,
  590.     UWORD      fOption,
  591.     UDWORD     vParam);
  592.  
  593. RETCODE SQL_API SQLSpecialColumns(
  594.     HSTMT      hstmt,
  595.     UWORD      fColType,
  596.     UCHAR  FAR *szTableQualifier,
  597.     SWORD      cbTableQualifier,
  598.     UCHAR  FAR *szTableOwner,
  599.     SWORD      cbTableOwner,
  600.     UCHAR  FAR *szTableName,
  601.     SWORD      cbTableName,
  602.     UWORD      fScope,
  603.     UWORD      fNullable);
  604.  
  605. RETCODE SQL_API SQLStatistics(
  606.     HSTMT      hstmt,
  607.     UCHAR  FAR *szTableQualifier,
  608.     SWORD      cbTableQualifier,
  609.     UCHAR  FAR *szTableOwner,
  610.     SWORD      cbTableOwner,
  611.     UCHAR  FAR *szTableName,
  612.     SWORD      cbTableName,
  613.     UWORD      fUnique,
  614.     UWORD      fAccuracy);
  615.  
  616. RETCODE SQL_API SQLTables(
  617.     HSTMT      hstmt,
  618.     UCHAR  FAR *szTableQualifier,
  619.     SWORD      cbTableQualifier,
  620.     UCHAR  FAR *szTableOwner,
  621.     SWORD      cbTableOwner,
  622.     UCHAR  FAR *szTableName,
  623.     SWORD      cbTableName,
  624.     UCHAR  FAR *szTableType,
  625.     SWORD      cbTableType);
  626. #endif /* RC_INVOKED */
  627.  
  628.  
  629. /* Level 2 Functions                             */
  630.  
  631. /* SQLExtendedFetch "fFetchType" values */
  632. #define SQL_FETCH_NEXT      1
  633. #define SQL_FETCH_FIRST     2
  634. #define SQL_FETCH_LAST      3
  635. #define SQL_FETCH_PREV      4
  636. #define SQL_FETCH_ABSOLUTE  5
  637. #define SQL_FETCH_RELATIVE  6
  638. #define SQL_FETCH_RESUME    7
  639.  
  640. /* SQLExtendedFetch "rgfRowStatus" element values */
  641. #define SQL_ROW_SUCCESS         0
  642. #define SQL_ROW_DELETED         1
  643. #define SQL_ROW_UPDATED         2
  644. #define SQL_ROW_NOROW            3
  645.  
  646. /* Defines for SQLForeignKeys (returned in result set) */
  647. #define SQL_CASCADE         0
  648. #define SQL_RESTRICT        1
  649. #define SQL_SET_NULL        2
  650.  
  651. /* Defines for SQLProcedureColumns (returned in the result set) */
  652. #define SQL_PARAM_TYPE_UNKNOWN  0
  653. #define SQL_PARAM_INPUT         1
  654. #define SQL_PARAM_INPUT_OUTPUT  2
  655. #define SQL_RESULT_COL          3
  656.  
  657. /* Defines for SQLSetScrollOptions */
  658. #define SQL_CONCUR_READ_ONLY    1
  659. #define SQL_CONCUR_LOCK         2
  660. #define SQL_CONCUR_TIMESTAMP    3
  661. #define SQL_CONCUR_VALUES       4
  662.  
  663. #define SQL_SCROLL_FORWARD_ONLY      0
  664. #define SQL_SCROLL_KEYSET_DRIVEN    -1
  665. #define SQL_SCROLL_DYNAMIC          -2
  666. #define SQL_SCROLL_STATIC           -3
  667.  
  668. /* Defines for SQLStatistics */
  669. #define SQL_INDEX_UNIQUE    0
  670. #define SQL_INDEX_ALL       1
  671. #define SQL_ENSURE          1
  672. #define SQL_QUICK           0
  673.  
  674. /* Defines for SQLStatistics (returned in the result set) */
  675. #define SQL_TABLE_STAT      0
  676. #define SQL_INDEX_CLUSTERED 1
  677. #define SQL_INDEX_HASHED    2
  678. #define SQL_INDEX_OTHER     3
  679.  
  680. #ifndef RC_INVOKED
  681. /* Level 2 Prototypes */
  682. RETCODE SQL_API SQLBrowseConnect(
  683.     HDBC       hdbc,
  684.     UCHAR  FAR *szConnStrIn,
  685.     SWORD      cbConnStrIn,
  686.     UCHAR  FAR *szConnStrOut,
  687.     SWORD      cbConnStrOutMax,
  688.     SWORD  FAR *pcbConnStrOut);
  689.  
  690. RETCODE SQL_API SQLColumnPrivileges(
  691.     HSTMT      hstmt,
  692.     UCHAR  FAR *szTableQualifier,
  693.     SWORD      cbTableQualifier,
  694.     UCHAR  FAR *szTableOwner,
  695.     SWORD      cbTableOwner,
  696.     UCHAR  FAR *szTableName,
  697.     SWORD      cbTableName,
  698.     UCHAR  FAR *szColumnName,
  699.     SWORD      cbColumnName);
  700.  
  701. RETCODE SQL_API SQLDataSources(
  702.     HENV       henv,
  703.     UWORD      fDirection,
  704.     UCHAR  FAR *szDSN,
  705.     SWORD      cbDSNMax,
  706.     SWORD  FAR *pcbDSN,
  707.     UCHAR  FAR *szDescription,
  708.     SWORD      cbDescriptionMax,
  709.     SWORD  FAR *pcbDescription);
  710.  
  711. RETCODE SQL_API SQLDescribeParam(
  712.     HSTMT      hstmt,
  713.     UWORD      ipar,
  714.     SWORD  FAR *pfSqlType,
  715.     UDWORD FAR *pcbColDef,
  716.     SWORD  FAR *pibScale,
  717.     SWORD  FAR *pfNullable);
  718.                
  719. RETCODE SQL_API SQLExtendedFetch(
  720.     HSTMT      hstmt,
  721.     UWORD      fFetchType,
  722.     SDWORD     irow,
  723.     UDWORD FAR *pcrow,
  724.     UWORD  FAR *rgfRowStatus);
  725.  
  726. RETCODE SQL_API SQLForeignKeys(
  727.     HSTMT      hstmt,
  728.     UCHAR  FAR *szPkTableQualifier,
  729.     SWORD      cbPkTableQualifier,
  730.     UCHAR  FAR *szPkTableOwner,
  731.     SWORD      cbPkTableOwner,
  732.     UCHAR  FAR *szPkTableName,
  733.     SWORD      cbPkTableName,
  734.     UCHAR  FAR *szFkTableQualifier,
  735.     SWORD      cbFkTableQualifier,
  736.     UCHAR  FAR *szFkTableOwner,
  737.     SWORD      cbFkTableOwner,
  738.     UCHAR  FAR *szFkTableName,
  739.     SWORD      cbFkTableName);
  740.  
  741. RETCODE SQL_API SQLMoreResults(
  742.     HSTMT      hstmt);
  743.  
  744. RETCODE SQL_API SQLNativeSql(
  745.     HDBC       hdbc,
  746.     UCHAR  FAR *szSqlStrIn,
  747.     SDWORD     cbSqlStrIn,
  748.     UCHAR  FAR *szSqlStr,
  749.     SDWORD     cbSqlStrMax,
  750.     SDWORD FAR *pcbSqlStr);
  751.  
  752. RETCODE SQL_API SQLNumParams(
  753.     HSTMT      hstmt,
  754.     SWORD  FAR *pcpar);
  755.  
  756. RETCODE SQL_API SQLParamOptions(
  757.     HSTMT      hstmt,
  758.     UDWORD     crow,
  759.     UDWORD FAR *pirow);
  760.  
  761. RETCODE SQL_API SQLPrimaryKeys(
  762.     HSTMT      hstmt,
  763.     UCHAR  FAR *szTableQualifier,
  764.     SWORD      cbTableQualifier,
  765.     UCHAR  FAR *szTableOwner,
  766.     SWORD      cbTableOwner,
  767.     UCHAR  FAR *szTableName,
  768.     SWORD      cbTableName);
  769.  
  770. RETCODE SQL_API SQLProcedureColumns(
  771.     HSTMT      hstmt,
  772.     UCHAR  FAR *szProcQualifier,
  773.     SWORD      cbProcQualifier,
  774.     UCHAR  FAR *szProcOwner,
  775.     SWORD      cbProcOwner,
  776.     UCHAR  FAR *szProcName,
  777.     SWORD      cbProcName,
  778.     UCHAR  FAR *szColumnName,
  779.     SWORD      cbColumnName);
  780.  
  781. RETCODE SQL_API SQLProcedures(
  782.     HSTMT      hstmt,
  783.     UCHAR  FAR *szProcQualifier,
  784.     SWORD      cbProcQualifier,
  785.     UCHAR  FAR *szProcOwner,
  786.     SWORD      cbProcOwner,
  787.     UCHAR  FAR *szProcName,
  788.     SWORD      cbProcName);
  789.  
  790. RETCODE SQL_API SQLSetPos(
  791.     HSTMT      hstmt,
  792.     UWORD      irow,
  793.     BOOL       fRefresh,
  794.     BOOL       fLock);
  795.  
  796. RETCODE SQL_API SQLSetScrollOptions(
  797.     HSTMT      hstmt,
  798.     UWORD      fConcurrency,
  799.     SDWORD     crowKeyset,
  800.     UWORD      crowRowset);
  801.  
  802. RETCODE SQL_API SQLTablePrivileges(
  803.     HSTMT      hstmt,
  804.     UCHAR  FAR *szTableQualifier,
  805.     SWORD      cbTableQualifier,
  806.     UCHAR  FAR *szTableOwner,
  807.     SWORD      cbTableOwner,
  808.     UCHAR  FAR *szTableName,
  809.     SWORD      cbTableName);
  810.  
  811. #endif /* RC_INVOKED */
  812.  
  813. #ifdef __cplusplus
  814. }                                    /* End of extern "C" { */
  815. #endif    /* __cplusplus */
  816.  
  817. #endif /* __SQLEXT */
  818.